1. Field of the Invention
The present invention relates to modeling and validating information consumed by processes, as well as activities within processes.
2. Description of Background
In the field of computer science, a service is a software system designed to support interoperable machine-to-machine interaction over a network. A service exposes external interfaces doing something meaningful and offers bindings that consumers bind to. A service can be described in terms of its external interactions using, for example, Web Services Description Language (see <en.wikipedia.org/wiki/Web_Services_Description_Language>). Services typically have a collection of ports with appropriate bindings and an optional detailed description of the interfaces in the port type. If available, interface descriptions include input and output descriptions.
A service modeling language, such as the Unified Modeling Language (see <www.ibm.com/developerworks/rational/library/05/419_soa/>), models the basic service description. The description includes port type, interfaces and bindings, and optionally other services invoked by internal processing of the service. Modeling the internal invocation of other services is done for wiring or orchestration purposes only, without providing any way of analyzing service realization and information consumption aspects.
A process is a flow of activities (see <en.wikipedia.org/wiki/Process>). A process modeling language, such as Business Process Modeling Language (BPML) or Business Process Modeling Notation (BPMN) (see <en.wikipedia.org/wiki/Business_Process_Modeling_Language>), models the basic activity flow of a process as well as the input and output interface of that process.
A process execution modeling language, such as BPEL (see <en.wikipedia.org/wiki/BPEL>), in the context of SOA (Service-Oriented Architecture), models a process as an orchestration of activities embodied by humans and services. The process invokes abstracted activities during its execution (often referred to as processes executing over services). Modeling the invocation of activities and services is done for wiring or orchestration purposes only, without providing any way of analyzing information consumption aspects.
An information model (see <en.wikipedia.org/wiki/Information_model>) is an abstract, formal representation of information entities that includes their properties, relationships and the operations that can be performed on them. An information model is classically used in a data or information architecture context. An information model may be additionally used as a shared semantic context for definition of interfaces.
Current service, activity and process modeling languages include the inputs and outputs of services and processes, however they do not take into account the additional information consumed internally by the services, activities and processes. This lack of information representation can lead to information mismatch upon downstream assembly when, for some reason, appropriate information is not available. Current modeling mechanisms are unable to detect these issues, as they do not include the necessary model elements to perform information verification. The information mismatch issues may occur in both transactional and bulk processing contexts.
As described, information consumed by services, activities and processes is not part of current modeling approaches. Hence, currently there are no quantitative and qualitative control mechanisms for availability of information. Based on standard models there is no way to verify the balanced “equation” between services, processes and information needed to support business solutions. However, in order to avoid expensive rework, it is critical to detect an information mismatch problem before initiating assembly of the solution. The earlier such problems are identified, the less expensive they are to correct. Furthermore, a programmer should not have to figure out information consumption and information quality characteristics. Such characteristics are the concern of information architecture.